package myjava.garbage;

import java.util.Date;

public class Root {

   public static void main(String[] args) {

      Runtime rt = Runtime.getRuntime();

      System.out.println("total memory = " + rt.totalMemory());
      System.out.println("free memory memory before = " + rt.freeMemory());

      Date d = null;

      int l = 10000000;
      while (l > 0) {
         l--;
         d = new Date();
      }

      System.out.println("free memory memory after = " + rt.freeMemory());
      rt.gc();
      // libera effettivamente memoria!
      /* inoltre nota che quando il ciclo ha finito non e' che la jvm si mette a segare giu oggetti
         di botta! Il GC parte quando cazzo vuole lui e se non lo attiviamo noi in questo caso
         lui lasciava le istanze la a galleggiare nell'heap */
      System.out.println("free memory memory after (GC) = " + rt.freeMemory());
   }
}